package com.itheima.demo10总结;

/*
能够理解JDBC的概念
    Java数据库连接 Java DataBase Connectivity
    让Java操作数据库

能够使用DriverManager类
    Connection conn = DriverManager.getConnection(url, 账号, 密码); // 登录数据库

能够使用Connection接口
    Statement stmt = conn.createStatement(); // 执行SQL语句的对象,不安全有SQL注入
    PreparedStatement pstmt = conn.prepareStatement(sql); // 执行SQL语句的对象,安全,没有SQL注入

能够使用Statement接口
    int executeUpdate(sql); // 执行除查询外的SQL语句
    ResultSet executeQuery(sql); // 执行查询的SQL语句

能够使用ResultSet接口
    ResultSet查询的结果集(相当于迭代器)
    while (rs.next()) {
        // 取出一行数据
        rs.getXxx(字段名);
    }

能够描述SQL注入原理和解决方案
    SQL注入原理: 用户输入的内容变成了SQL语句被执行
    解决方案: 使用PreparedStatement解决

能够通过PreparedStatement完成CURD代码
    String sql = "INSERT INTO user VALUES (NULL, ?, ?);";
    PreparedStatement pstmt = conn.prepareStatement(sql);
    // 3.给?赋值   pstmt.setXxx(第几个?, ?的具体值)
    pstmt.setString(1, "jack");
    pstmt.setString(2, "123");

    // 4.执行
    int row = pstmt.executeUpdate();


能够在JDBC中使用事务
    Connection接口中:
        void setAutoCommit(false); 开启事务
        void commit(); 提交事务
        void rollback(); 回滚事务

能够理解连接池的原理
    1.刚启动连接池就准备一批连接
    2.当用户需要使用连接时,从连接池中取出连接
    3.使用完毕后,重新放回连接池中

能够使用常见的连接池C3P0(或者Druid)
    1.导入Druid的Jar包
    2.复制druid.properties到src下,修改数据
    3.加载druid.properties的内容
    4.创建Druid连接池
    5.从Druid连接池中取出连接
 */
public class Demo11 {
}
